Heretofore, there has been no standard command interface for display codecs; each codec has used a proprietary register set for control purposes. Codecs from different companies are likely to have incompatible commands. Even different codecs from the same company are like to have incompatible commands. Conventionally, adding support for a new display codec to graphics controller software has involved one of two options:                1) Adding the new codec by “hard-coding” it into graphics controller software; or        2) Adding to the graphics controller software a new software module compliant with a pre-specified hardware abstraction layer (HAL) for the new codec.        
Unfortunately, both of these options involve developing a new version of the graphics controller software.